home *** CD-ROM | disk | FTP | other *** search
/ Collection of Internet / Collection of Internet.iso / faq / comp / object_f / part5 < prev    next >
Text File  |  1993-12-14  |  60KB  |  1,432 lines

  1. Newsgroups: comp.object,comp.answers,news.answers
  2. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!nic.hookup.net!swrinde!cs.utexas.edu!howland.reston.ans.net!vixen.cso.uiuc.edu!uchinews!news
  3. From: Bob Hathaway <rjh@geodesic.com>
  4. Subject: Comp.Object FAQ Version 1.0.5 (12-13) Part 5/8
  5. Message-ID: <1993Dec14.044721.18360@midway.uchicago.edu>
  6. Followup-To: comp.object
  7. Summary: Frequently Asked Questions (FAQ) List and Available Systems For Object-Oriented Technology
  8. Sender: news@uchinews.uchicago.edu (News System)
  9. Organization: Geodesic Systems
  10. Date: Tue, 14 Dec 1993 04:47:21 GMT
  11. Approved: news-answers-request@MIT.Edu
  12. Lines: 1417
  13. Xref: senator-bedfellow.mit.edu comp.object:13852 comp.answers:2993 news.answers:15751
  14.  
  15. Archive-name: object-faq/part5
  16. Last-Modified: 12/13/93
  17. Version: 1.0.5
  18.  
  19. Workgroup through enterprise-wide and cross-enterprise computing is supported
  20. via a distributed client/server architecture that provides a single logical
  21. view over multiple databases on heterogeneous machines.  The user sees a
  22. logical view of objects connected to objects and need not worry that one object
  23. is in a database on a Sun workstation, while another may be in a database under
  24. Windows or VMS.  All operations work transparently across this environment,
  25. including atomic transactions with two-phase commit, propagating methods, and
  26. versioning.  Objects may be moved between databases and platforms without
  27. affecting working applications or requiring changes to the applications. 
  28. Multiple schemas may be created, without affecting other users or databases,
  29. and may be used simultaneously with shared schemas, allowing local groups to
  30. define their own models but still connect to other groups.  Databases may be
  31. detached from this shared environment (federated database) and used on portable
  32. devices, reconnected or moved to different (compatible) environment, or
  33. distributed as parts or image libraries.  Gateways to RDBMSs are provided via
  34. third-party integration with Persistence Software, and more generally to any
  35. foreign data store, as long as the user installs the appropriate access
  36. methods, extending the single-logical-view to include read/write access to
  37. arbitrary foreign data stores.  Together, these allow delegation of
  38. responsibilities to the appropriate users, integration with existing systems,
  39. and gradual migration toward full enterprise-wide sharing.
  40.  
  41. The on-demand object manager directly and automatically manages object access
  42. and buffering, rather than relying on system facilities such as virtual memory
  43. or user manual get/put calls.  Mechanisms used include multiple buffer pools
  44. locally and remotely, b-trees, hashing, scoped names, keys, and iterators, with
  45. distributed catalogues for schemas and databases.  A direct connection is
  46. established between the user and the objects used, so that users do not
  47. conflict unless and until they are competing for the same objects, thus
  48. avoiding the traditional central-server bottleneck.  Short transactions are
  49. based on traditional (transient) locks, owned by the process, and group
  50. together an arbitrary set of operations.  Long transactions are based on
  51. persistent locks, owned by the user, and provide the same arbitrary grouping. 
  52. Default concurrency is two-phase locking and serialization, but extensions
  53. available include MROW, or multiple-readers concurrent with one-writer, and
  54. allow users to lock with or without wait or with timed waits, to implement more
  55. sophisticated mechanisms.
  56.  
  57. Objects may be modeled using C++ structures augmented by classes provided such
  58. as strings, dictionaries, and relationship management, as well as some
  59. particular domain libraries.  A simple object is a C++ class (or C structure)
  60. with associated access methods.  A complex object may include multiple varrays,
  61. each being a dynamically varying sized array of arbitrary structure.  A
  62. composite object is any network of related objects that acts as a single
  63. object, both structurally and behaviorally, via propagation of behaviors to
  64. component objects.  Any number of composite objects may be contained in
  65. composite objects, and a single object may participate in any number of
  66. composites.  The relationship mechanism supports uni- and bi-directional
  67. relationships, one-to-one, one-to-many, and many-to-many.  Versioning is
  68. supported at object granularity, may be turned on or off at any time for each
  69. object, may be restricted to linear or allow branching with multiple writers. 
  70. References to versioned objects may be to a specific version or to the default
  71. version, which may be separately specified by a method and may allow multiple
  72. defaults.  Schema and object evolution are supported via versioning of the
  73. type-defining objects.  Each time a type definition is changed, its defining
  74. object is versioned, allowing arbitrary changes.  Objects may then be instances
  75. of the old or new type version.  Object evolution or upgrading to the new type
  76. version is supported  by the user writing conversion methods which are
  77. installed and invoked by the system.
  78.  
  79. ANSI SQL query is supported in the SQL++ product.  Predicate syntax may be
  80. either C++ or SQL.  The ODBC and SQL Access Group (SAG) protocols are
  81. supported.  Queries may be invoked programatically or interactively, with ad
  82. hoc support.  Access to object features is available via methods and traversal
  83. of relationships.
  84.  
  85. Over forty administrative and developer tools are provided, each with both an
  86. interactive and programmatic interface.  These include GUI object and type
  87. browsers, query browsers, report generator, tools to examine and force short
  88. and long locks, to move objects and databases, etc.  On-line incremental backup
  89. provides a consistent network-wide snapshot, including referential integrity
  90. across all databases, and runs incremental and full database backups with no
  91. need to acquiesce the databases and no interference with active applications. 
  92. All tools are built around a messaging backplane, which supports four levels of
  93. integration with user and third-party tools.  Integrated products include HP
  94. SoftBench (full operational level), CenterLine's ObjectCenter (tool level), 
  95. Persistence RDBMS gateway, PTech and ProtoSoft Design and Analysis (language
  96. level), and XVT and UIM/X (compatibility level).
  97.  
  98. Objectivity/DB is resold by Digital Equipment Corporation as DEC Object/DB,
  99. providing a multi-billion-dollar second source vendor.  Over 50,000 end users
  100. are licensed in production use, with applications including real-time
  101. telecommunications, aerospace, defense, case, CAD/CAM, CIM, manufacturing, oil
  102. & gas, process control, transportation, multi-media, case, document management,
  103. financial analysis, and corporate information management.  Platform support
  104. includes all Sun, all DEC (including VMS, alpha, OSF-1), HP/9000 series (both
  105. 68xxx and PA-RISC), IBM RS/6000, NCR 3300, SGI, Windows 3.1, and Windows NT.
  106.  
  107. On Schema Evolution (from original survey):
  108. In the just-released Version 2.0 (shipping Oct 92), schema evolution
  109. is supported via dynamic versioning of type-defining objects [ie.
  110. class versions -- SMC], and via a step-by-step approach that allows
  111. conversion of instance data via user-provided conversion methods.
  112. Also, a full dynamic type manager interface is available for doing
  113. fancier things.
  114.  
  115. Contact:
  116.  
  117. Drew Wade
  118. Objectivity, Inc.
  119. 800 El Camino Real
  120. Menlo Park, CA  94025 USA
  121. drew@objy.com
  122. 1(415)688-8000 voice
  123. 1(415)325-0939 fax
  124. admin ass't:  Vickie Clements (vickie@objy.com)
  125. information:  info@objy.com
  126.  
  127.  
  128. > ObjectStore (Object Design)
  129.  
  130. Entry on Schema Evolution only:
  131.  
  132. ObjectStore does not provide schema evolution as yet but it has
  133. promised to provide schema evolution in the next release.
  134. [h.subramanian@trl.OZ.AU]
  135.  
  136. ObjectStore is an ODBMS produced by Object Design, Inc.  Release 2,
  137. which is in beta test now, supports schema evolution.  The kinds of
  138. evolution supported include change of a data member's type, addition
  139. and removal of data members, and change in inheritance structure.
  140. There are default transformations built in, (e.g. from int to float),
  141. and user-defined transformations may be run also.
  142.  
  143. Approximately $5-8K
  144.  
  145. [Ian Schmidt, Object Design, Inc. <schmidt@odi.com>]
  146.  
  147.         
  148. > Ontos [formerly VBase] (Ontologic)
  149.  
  150. Entry on schema evolution only:
  151.  
  152. *Ontos provides schema evolution. It allows any class to be modified.
  153. *The major drawback is that data does not migrate ie., instances are
  154. *not modified to adopt to the new class definition. So schema changes
  155. *can be done only on classes that do not contain instances and do not
  156. *have sub classes that contain instances.
  157. *[h.subramanian@trl.OZ.AU]
  158.  
  159. *As a system for experiments, we are currently using ONTOS from
  160. *Ontologic Inc.  Unfortunately, there is no transparent concept of
  161. *schema evolution for populated database. Thus, we still investigate
  162. *how it works.
  163.  
  164. ONTOS has a version of ONTOS for OS/2.  Approximately $11K. Others I don't know
  165.  
  166.  
  167. > OpenODB (Hewlett-Packard)
  168.  
  169. OpenODB is an advanced object-oriented database management system
  170. (ODBMS) from Hewlett-Packard for your complex commercial application
  171. needs.  With OpenODB, you can take advantage of new object-oriented
  172. features combined with a robust database management system.  This
  173. combination of capabilities is unique in the industry.
  174.  
  175. OpenODB's object-oriented features will help to reduce your development
  176. and maintenance costs by more intuitively representing your business
  177. problems. Also, OpenODB stores code as well as data.  This means that
  178. your application will be simpler and code as well as data can be shared
  179. between multiple users and applications.
  180.  
  181. OpenODB's database management features ensure the integrity, security
  182. and availability of your stored code and data.  At the same time,
  183. OpenODB protects your existing data, applications and training
  184. investment by allowing you to access existing data and applications
  185. using the object-oriented structured query language (OSQL).
  186.  
  187. Hewlett-Packard's OpenODB product uses a client/server architecture, 
  188. enabling you to efficiently utilize your available computing power.  
  189. OpenODB's clients use the programmatic interface to access information on 
  190. the server.
  191.  
  192. OpenODB is composed of the following client and server components:
  193.  
  194. OpenODB Clients
  195.  
  196. o        Interactive Object-Oriented SQL (IOSQL)
  197.          This interface allows you to interactively enter all object-
  198.          oriented SQL (OSQL) statements, facilitating rapid prototyping
  199.          and testing.  IOSQL provides basic query, administration and
  200.          editing capabilities.
  201.  
  202. o        Graphical Browser
  203.          The Graphical Browser is a tool that allows you to graphically
  204.          explore your database schema and contents.  This tool is
  205.          designed to increase the speed of application development by
  206.          making it easier for you to find reusable code stored in
  207.          OpenODB.
  208.  
  209. o        Programmatic Interface
  210.          You can write OpenODB applications using any programming
  211.          language that can be linked with C (C++, COBOL, FORTRAN,
  212.          Pascal).  The programmatic interface uses OSQL statements
  213.          passed as parameters and does not require preprocessors.
  214.  
  215. o        User Applications and Tools
  216.          These are the OpenODB clients you will develop using IOSQL,
  217.          the Graphical Browser and the Programmatic Interface.
  218.  
  219. OpenODB Server Components
  220.  
  221. o        Object Manager
  222.          The Object Manager executes OSQL calls made by the OpenODB
  223.          clients.  The Object Manager processes requests and accesses
  224.          data and code from the internal data storage manager
  225.          (Relational Storage Manager) or passes the request to a
  226.          subsystem outside of OpenODB (External Functions).
  227.  
  228. o        Relational Storage Manager
  229.          OpenODB uses a relational database as its storage manager for
  230.          internally stored data and code.  The relational database
  231.          performs the physical file management and database functions
  232.          such as multiuser concurrency, transaction management, and
  233.          recovery.  Relational database tools are available to help you
  234.          perform online backup and recovery, manage physical
  235.          distribution of files, maximize availability and change
  236.          database parameters.
  237.  
  238. o        External Functions
  239.  
  240.          External functions allow you to access data and code stored
  241.          outside of OpenODB, regardless of data format or location.
  242.          They are implemented by you as subroutines written in general-
  243.          purpose programming languages and compiled outside of OpenODB.
  244.          With external functions, you can encapsulate existing
  245.          applications.  External functions can be called by any OSQL
  246.          statement, allowing you to use this remote data and
  247.          application code like any other object.
  248.  
  249. OpenODB Object Model
  250.  
  251. In OpenODB, the object-oriented model is based upon three components:
  252. objects, types and functions.  These terms are defined as follows in
  253. OpenODB:
  254.  
  255.      Objects are a combination of data and stored code that operate on
  256.      the data.
  257.  
  258.      Types allow you to classify similar objects.
  259.  
  260.      Functions operate on data in the database and also define the
  261.      behavior of that data in the database.  OpenODB supports the
  262.      following three  types of user-defined functions:
  263.  
  264.   *      Stored functions define attributes and relationships that are
  265.          stored in the database.
  266.  
  267.   *      OSQL-based functions define attributes and relationships that
  268.          are  retrieved or calculated with OSQL statements.
  269.  
  270.   *      External functions are a reference to code or data stored
  271.          outside of OpenODB.
  272.  
  273. OpenODB Language
  274.  
  275. You create and manipulate objects, types and functions using OpenODB's
  276. object-oriented structured query language (OSQL).  OSQL is a functional
  277. language that is a semantic superset of SQL, the structured query
  278. language used for relational databases.  OSQL is a complete language
  279. with statements that allow you to define and manipulate your OpenODB
  280. database, specify authorization by individuals or groups, define
  281. transactions, embed program logic within functions, and administer your
  282. database.
  283.  
  284. Using OSQL, you can create the following schema:
  285.  
  286.                            +---------------+
  287. Type                       |   Employee    | Name, Salary, Picture,
  288.                            +---------------+ SalaryDeduction, WorksFor,
  289.                   +----------------|----------------+ DisplayPicture
  290.          +----------------+               +-----------------+
  291. Subtype  |    Manager     | Manages       |    Programmer   | Languages
  292.          +----------------+               +-----------------+
  293.  
  294.                          OpenODB Schema Diagram
  295.  
  296. Creating Types and Functions
  297.  
  298. The first step is to create basic types and functions using the CREATE
  299. TYPE statement, and to create additional functions using the CREATE
  300. FUNCTION statement.  Next, using the simple OSQL statements shown in
  301. Table 2, you can create specific objects.
  302.  
  303.    Create a user-defined type called Employee with three stored
  304.    functions:
  305.  
  306.         CREATE TYPE Employee
  307.           FUNCTIONS (Name CHAR,
  308.                      Salary FLOAT,
  309.                      Picture BINARY);
  310.  
  311.    Create type Programmer, a subtype of Employee. Also define the
  312.    stored function Languages on Programmer:
  313.  
  314.         CREATE TYPE Programmer SUBTYPE OF Employee
  315.           FUNCTIONS (Languages SETTYPE(CHAR));
  316.  
  317.    Create type Manager, a subtype of Employee.  Also define the stored
  318.    function Manages on Manager:
  319.  
  320.         CREATE TYPE Manager SUBTYPE OF Employee
  321.           FUNCTIONS (Manages SETTYPE(Employee));
  322.  
  323.    Create an OSQL-based function SalaryDeduction on Employee:
  324.  
  325.         CREATE FUNCTION SalaryDeduction (Employee e) -> FLOAT AS OSQL
  326.            SELECT (0.3 * Salary (e));
  327.  
  328.    Create an OSQL-based function WorksFor on Employee to define the
  329.    relationship with Manager:
  330.  
  331.         CREATE FUNCTION WorksFor (Employee e) -> Manager AS OSQL
  332.            SELECT mgr
  333.             FOR EACH Manager mgr
  334.             WHERE e IN Manages(mgr);
  335.  
  336.    Create an external function on Employee to display the employee's
  337.    picture:
  338.  
  339.         CREATE FUNCTION DisplayPicture (CHAR Name) -> CHAR AS EXTERNAL
  340.           SIMPLEEXTFUN('DisplayPicture $Name');
  341.  
  342. Creating Objects
  343.  
  344.   Put data into three stored functions defined on the Programmer type:
  345.  
  346.         CREATE OBJECT AS Programmer
  347.          FUNCTIONS (Name, Salary, Languages)
  348.          :bob ('Bob Cox', 55000, SET('PL/1', 'C')),
  349.          :sue ('Sue Smith', 65000, SET('COBOL'));
  350.  
  351.   Put data into three stored functions defined on the Manager type:
  352.         CREATE OBJECT AS Manager
  353.          FUNCTIONS (Name, Salary, Manages)
  354.          :al ('Al Ott', 70000, SET(:bob,:sue)),
  355.          :jim ('Jim Hill', 100000, SET());
  356.  
  357.   Put data into three stored functions using a reference to another
  358.   object:
  359.  
  360.         CREATE OBJECT AS Manager
  361.          FUNCTIONS (Name, Salary, Manages)
  362.          :chris ('Chris Jones', 80000, SET(:al,:jim));
  363.  
  364. SQL-like Queries
  365.  
  366.   Select Bob's salary:
  367.  
  368.         SELECT Salary (:bob);
  369.           Result: 55000
  370.  
  371.   Select the names of the employees that Al manages:
  372.  
  373.         SELECT Name(Manages(:al));
  374.           Results: 'Bob Cox'
  375.                    'Sue Smith'
  376.  
  377.   Select the names of all managers:
  378.  
  379.         SELECT Name (m)
  380.          FOR EACH Manager m;
  381.             Results: 'Al Ott'
  382.                      'Jim Hill'
  383.                      'Chris Jones'
  384.  
  385. NOTE:  The ":" denotes a temporary variable (e.g. :bob) defined in your
  386. application to store a reference to your OpenODB object.
  387.  
  388. Development of New Applications Faster Using OpenODB, you can directly
  389. model your business information in an intuitive way.  You can also
  390. reuse code stored in OpenODB to reduce your application backlog and
  391. improve your productivity.  To help you develop new applications
  392. faster, OpenODB provides the following features:
  393.  
  394. Object Identity Each object stored in OpenODB has a system-provided,
  395. unique handle called an object identifier (OID).  OIDs reduce
  396. duplication of information and relieve you from creating unique keys to
  397. identify stored information in the database.
  398.  
  399. Complex Objects With OpenODB you can construct complex objects from
  400. simpler objects.  Complex objects relieve your application code from
  401. managing the relationships between simple objects.
  402.  
  403. Referential Integrity Since OpenODB has knowledge of the relationships
  404. between objects, it can manage referential integrity on your behalf.
  405. That is, if objects referenced by other objects are deleted, the system
  406. removes all dependencies.  You can specify whether or not to "cascade"
  407. changes or to just delete the immediate dependency.  For instance, if
  408. you delete the Employee 'Bob Cox', the function call
  409. (Name(Manages(:al))) will return just 'Sue Smith'.  The result is a
  410. simplified database schema and simplified application code that can be
  411. developed more quickly since you do not need to manage referential
  412. integrity explicitly.
  413.  
  414. User-defined Data Types In addition to the primitive data types you can
  415. construct user-defined data types in OpenODB rather than in your
  416. application code.  User-defined types give you more flexibility and
  417. lead to more manageable, clearer code.
  418.  
  419. Type Hierarchy Types can be organized in a hierarchy.  This hierarchy
  420. of types and related functions allows you to minimize the translation
  421. from your business model to your OpenODB schema.  The hierarchy also
  422. enables a type to inherit functions defined on "parents", eliminating
  423. duplication of functions.  You will be able to more quickly move from
  424. application design to implementation.
  425.  
  426. Multiple Inheritance Functions defined on a type can be inherited by
  427. one or more subtypes.  By inheriting rather than redefining functions,
  428. you can easily extend the functionality of your application.
  429.  
  430. Overloaded Functions Multiple functions can have the same name with
  431. different implementations.  In your application, all you need to do is
  432. call a function (e.g. Salary). OpenODB will determine which code
  433. (Salary for Employee or Salary for Manager) to execute based upon the
  434. parameter passed at run-time.  As a result, your application code is
  435. simplified since the logic for determining which function to execute is
  436. now in OpenODB.
  437.  
  438. Late Binding OpenODB supports functions that are resolved at run-time.
  439. Late binding allows you more flexibility in application development and
  440. gives you the full power of overloaded functions as described above.
  441. Late binding also shields your applications from changes to functions
  442. since these changes can be made online and the new function definition
  443. resolved at run-time.
  444.  
  445. Reduced Maintenance Costs OpenODB allows you to add new functionality
  446. and make schema changes to your OpenODB database at run-time, often
  447. without changing your application code or even stopping the database
  448. system.  The following OpenODB features will help reduce your
  449. maintenance costs:
  450.  
  451. Dynamic Schema Modification You can create new functions and types in
  452. OpenODB at runtime.  You can also change the implementation of
  453. functions without having to recompile your applications.
  454.  
  455. Dynamic Typing You can dynamically change the type of an object without
  456. having to destroy and recreate the object.  This is possible because an
  457. object can belong to more that one type.
  458.  
  459. Encapsulation OpenODB supports the combination of data and user-defined
  460. functions.  Since OpenODB only allows access to your data through these
  461. functions, your application is protected from changes to the function
  462. implementation and you have control over how users access information
  463. in OpenODB.  Encapsulation allows you to modify the function body
  464. without changing your application code.
  465.  
  466. Procedural Language OSQL includes programming flow statements,
  467. including IF/THEN/ELSE, FOR and WHILE.  The procedural language allows
  468. OpenODB functions to be quite complex, simplifying your application
  469. code.  By moving application code into the database, you can now share
  470. the code and get all of the benefits of sharing data, such as
  471. consistency, security and integrity.
  472.  
  473. For example...
  474.  
  475. Create a Procedure
  476.  
  477.   Convert all managers to programmers that have less than a specified
  478.   number of employees:
  479.  
  480.    CREATE FUNCTION MgrToEng (INTEGER minemps) -> BOOLEAN
  481.      AS OSQL
  482.         BEGIN
  483.           FOR m IN Manager DO
  484.              IF (COUNT(Manager (m)) < minemps)
  485.              THEN
  486.                 BEGIN
  487.                   ADD TYPE Programmer TO m;
  488.                   REMOVE TYPE Manager FROM m;
  489.                 END
  490.              ENDIF;
  491.          END;
  492.  
  493. Executing a Procedure
  494.  
  495. Applications are simplified since the implementation of functions can
  496. now be stored in OpenODB.  Simply call a function, passing a parameter:
  497.  
  498.   CALL MgrToEng(3);
  499.  
  500. Protection of Existing Investments OpenODB coexists with your current
  501. data and applications, allowing you to build upon existing
  502. functionality.  Also, OpenODB's object-oriented SQL (OSQL) is easy to
  503. learn if you already know Structured Query Language (SQL).
  504.  
  505. External Functions Using external functions, you can access distributed
  506. data and code stored outside of OpenODB, regardless of data format or
  507. location.  This simplified view of your enterprise allows you to more
  508. easily develop complex applications that integrate your existing data
  509. and applications.  For instance, you can develop an OpenODB application
  510. that accesses data stored in other databases (e.g. ALLBASE/SQL,
  511. TurboImage or DB2) as well as in flat files.  OpenODB acts as an
  512. integrator so that your application just needs to know OSQL.  OSQL
  513. statements may actually call functions that access data and encapsulate
  514. code stored outside of OpenODB.
  515.  
  516. OSQL If you already know SQL, you can quickly be productive using
  517. OpenODB's OSQL. OSQL uses syntax that is similar to SQL, the semantics
  518. are a superset of SQL, and both query languages are set-based, that is
  519. they retrieve sets of information based upon queries, as shown in
  520. earlier examples.
  521.  
  522. Optimize Performance and Availability OpenODB, with the help of the
  523. underlying relational storage manager, gives you flexibility in
  524. managing the performance of your system and maximizing the availability
  525. of information for your users.
  526.  
  527. High Availability
  528. OpenODB maximizes the availability of your information by providing:
  529. * dual logging, to ensure the integrity of your log file
  530. * switch log, to automatically switch to a second log file if the
  531.   original log file is damaged or becomes full
  532. * dynamic file expansion, to automatically expand the size of your
  533.   system file if it becomes full
  534. * online backup of the database, to backup the database while it is
  535.   being accessed OpenODB will also take advantage of available system
  536.   features such as disc mirroring.
  537.  
  538. Multiuser Concurrency Control OpenODB is designed to support hundreds
  539. of users accessing the same information while guaranteeing the
  540. integrity of that information.
  541.  
  542. Compiled Functions To improve runtime performance, functions are
  543. compiled and can be cached.
  544.  
  545. Access Methods on Stored Data Indexes are automatically defined on
  546. object identifiers (OIDs) for you when you create types and functions.
  547. These indexes help provide quick access to information stored in your
  548. OpenODB ODBMS.  You can also define your own indexes.
  549.  
  550. Clustering Related functions can be stored close to each other in order
  551. to improve performance.
  552.  
  553. Additional Features
  554.  
  555. Authorization You can control access to OpenODB at the database and
  556. function levels based on individuals or a group of users. Authorization
  557. statements provide you a flexible way to control access to types and
  558. functions in OpenODB.
  559.  
  560. Client/Server Architecture Clients communicate with the OpenODB server
  561. over a network.  The interface between the clients and the server is
  562. transparent to you as a user.  The clients and server can also reside
  563. on the same machine.
  564.  
  565. Multimedia OpenODB allows you to store large, unformatted data in
  566. binary format.  Some examples include graphics, images or voice.  You
  567. can also define functions in OpenODB to manipulate this multimedia
  568. information.  For example, you can store a picture as well as the
  569. function to display the picture.
  570.  
  571. Native Language Support You can store 8-bit and 16-bit character data
  572. in OpenODB.
  573.  
  574. Persistent Data and Code OpenODB allows you to save data as well as
  575. code between application sessions.
  576.  
  577. Primitive Data Types OpenODB supports a number of primitive data types,
  578. shown in the OpenODB Feature Summary below.  You can also create your
  579. own user-defined data types.
  580.  
  581. Recovery OpenODB has a robust logging and recovery facility.  In case
  582. of a failure, OpenODB can handle rollback or rollforward recovery to a
  583. particular time, using your log file to recreate saved work.
  584.  
  585. Transaction Management OpenODB ensures the logical and physical
  586. integrity of your database by giving you complete control over the unit
  587. of work to be performed within a single transaction.  With this
  588. control, you can save or rollback a transaction (throw away temporary
  589. work) at your discretion.  Savepoints are supported so that you can
  590. rollback parts of a transaction.
  591.  
  592. System Environment The OpenODB server and all clients are available on
  593. HP-UX 8.0 or later versions for the HP9000 Series 300/400/700/800
  594. systems and for MPE XL 4.0 or later versions for the HP3000 Series 900
  595. systems.  Client software will also be supported using X terminals.
  596. You will need 16 Mbytes of main memory (32 Mbytes recommended), at
  597. least 15 Mbytes disc space for installation and approximately 10 Mbytes
  598. DISC space for each new OpenODB database.
  599.  
  600. Software Requirements To use OpenODB, you need to have a TCP/IP
  601. transport and ARPA Berkeley Services.  To use the OpenODB Graphical
  602. Browser, you need to have X-Window X11.
  603.  
  604. Ordering Information The software includes:  OpenODB clients (IOSQL,
  605. Graphical Browser, Programmatic Interface) and the 1-8 user license for
  606. the OpenODB server (Object Manager, Runtime ALLBASE/SQL and External
  607. Functions).  You must specify a media option for the HP9000 systems.
  608.  
  609.          Product Number  Product Description
  610.          B2466A          OpenODB Developer Release for HP9000 S300/S400
  611.          B2468A          OpenODB Developer Release for HP9000 S700
  612.          B2470A          OpenODB Developer Release for HP9000 S800
  613.          B2472A          OpenODB Developer Release for HP3000 S900
  614.  
  615. Documentation, Online Support, Training and Consulting The OpenODB
  616. Developer Release includes documentation for all systems.  The OpenODB
  617. Developer Release also includes online support, training and
  618. consulting.   These services will be arranged when you place an order
  619. for the product.
  620.  
  621. OBJECT-ORIENTED FEATURES                 CLIENT INTERFACES
  622. Complex Objects                          Interactive OSQL
  623. Dynamic Schema Modification              Graphical Browser
  624. Dynamic Typing                           Programmatic Interfaces: C
  625. Encapsulation                            linkable languages (C++,
  626. External Functions                       COBOL, FORTRAN, Pascal)
  627. Functions (Stored Code or Methods)
  628. Late Binding                             OSQL STATEMENTS
  629. Multiple Inheritance                     Add/Remove Type To/From Object
  630. Object Identity (OID)                    Add/Remove User
  631. Overloaded Functions                     Call Function
  632. Type (Class) Hierarchy                   Change Password
  633. User-defined Data Types                  Create/Delete Function
  634.                                          Create/Delete Object
  635. DBMS FEATURES                            Create/Delete Type
  636. Access Methods on Stored Data            Create/Delete User/Group
  637. Authorization (Security)                 Grant/Revoke
  638. Client/Server                            If/Then/Else, While, For
  639. Clustering                               Implement Function
  640. Compiled Function                        Open/Fetch/Close Cursor
  641. Declarative Query Language (OSQL)        Select
  642. High Availability                        Update
  643. Multimedia
  644. Multiuser Concurrency Control            PRIMITIVE DATA TYPES
  645. Native Language Support                  Binary
  646. Persistence                              Boolean
  647. Primitive Data Types                     Character
  648. Procedural Language                      Date
  649. Recovery                                 Datetime
  650. Referential Integrity                    Decimal
  651. Transaction Management                   Floating Point
  652.                                          Integer
  653.                                          Interval
  654.                                          Long Binary (Large)
  655.                                          Small Integer
  656.                                          Time
  657.  
  658.                             OpenODB Feature Summary 
  659.  
  660.  
  661.  
  662. HP OpenODB Price Guide
  663.  
  664. SUMMARY:
  665.  
  666.    Description                        U.S. List Price
  667.  
  668. 1. Developer's Bundle                         $105,000
  669. 2. Evaluator's Bundle                           $5,000
  670. 3. Learning Version                            $10,000
  671. 4. Training Course                       $2,500/person
  672. 5. Consulting                      $3,500/day or Quote
  673. 6. Reference Manual                               $250
  674.  
  675. DETAILED DESCRIPTION:
  676.  
  677. 1. Developer's Bundle
  678.  
  679. Contents:
  680. A) OpenODB software (1-64 User License for 1 Server Platform)
  681. B) OpenODB documentation
  682. C) 5 passes to the OpenODB Training Course
  683. D) 5 days of on-site consulting
  684. E) Phone and software update support for 6 months
  685.  
  686. U.S. List Price: $105,000/bundle
  687.  
  688. Product Numbers:
  689. B2472A (for HP 3000 Series 900 with MPE/iX)
  690.  
  691. B2468A (for HP 9000 Series 700 with HP-UX)
  692.  
  693. B2470A (for HP 9000 Series 800 with HP-UX)
  694.  
  695. Notes:
  696. A) OpenODB documentation includes the OpenODB Reference Manual, ALLBASE/SQL
  697.    Handbook of DBA Tasks, and Up and Running with ALLBASE/SQL.
  698. B) The OpenODB Training Course is delivered in Cupertino, California and takes
  699.    4 days.
  700. C) Consulting is provided at the customer's site with a maximum of two trips.
  701. D) Phone support is provided directly from the HP OpenODB factory consulting
  702.    team in Cupertino, California.  Phone and software update support can be
  703.    purchased at the end of the first 6 months at the rate of $6,900 per year.
  704. E) Volume End User (VEU) and Educational discounts apply to the entire list
  705.    price.
  706. F) The Developer's Bundle is available on HP 3000 Series 900 or HP 9000 Series
  707.    700 and 800 computers.
  708.  
  709.  
  710. 2. Evaluator's Bundle
  711.  
  712. Contents:
  713. A) 3 months use of OpenODB software (1-64 User License for 1 Server Platform)
  714. B) OpenODB documentation
  715. C) 1 pass to the OpenODB Training Course
  716. D) Phone support for 3 months
  717.  
  718. U.S. List Price:  $5,000/bundle
  719.  
  720. Product Numbers:
  721. B3178A (for HP 9000 Series 700 with HP-UX)
  722.  
  723. B3179A (for HP 9000 Series 800 with HP-UX)
  724.  
  725. Notes:
  726. A) The OpenODB software is shipped when the product is ordered.  The OpenODB
  727.    software will stop running 3 months after it is installed.
  728. B) OpenODB documentation includes the OpenODB Reference Manual, ALLBASE/SQL
  729.    Handbook of DBA Tasks, and Up and Running with ALLBASE/SQL.
  730. C) The OpenODB Training Course is delivered in Cupertino, California and takes
  731.    4 days.
  732. D) Phone support is provided directly from the HP OpenODB factory consulting
  733.    team in Cupertino, California.
  734. E) Volume End User and Educational discounts apply to the entire list price.
  735. F) The Evaluator's Bundle is only available on HP 9000 Series 700 or 800
  736.    computers.
  737.  
  738. 3. Learning Version
  739.  
  740. Contents:
  741. A) OpenODB learning version software (Single User License for 1 Platform)
  742. B) OpenODB documentation
  743.  
  744. U.S. List Price:  $10,000/license
  745.  
  746. Product Numbers:
  747. B3181A (for HP 9000 Series 700 with HP-UX)
  748.  
  749. B3182A (for HP 9000 Series 800 with HP-UX)
  750.  
  751. Notes:
  752. A) This special single user version is intended for students, researchers, and
  753.    technical evaluators who wish to learn about the Object-oriented SQL (OSQL)
  754.    interface language and OpenODB product.  The learning version software runs
  755.    on one computer for one user application (i.e. no client/server mode).
  756. B) OpenODB documentation includes the OpenODB Reference Manual, ALLBASE/SQL
  757.    Handbook of DBA Tasks, and Up and Running with ALLBASE/SQL.
  758. C) Volume End User and Educational discounts apply to the list price.
  759. D) The Learning Version is available on HP 9000 Series 700 and 800 computers.
  760. E) Phone and software update support for the Learning Version can be
  761.    purchased at the rate of $1,500 per year.
  762.  
  763.  
  764. 4. OpenODB Training Course
  765.  
  766. Contents:
  767. A) 1 pass to the OpenODB Training Course
  768. B) OpenODB documentation
  769. C) Class notes and OSQL case study examples
  770.  
  771. U.S. List Price:  $2,500/person
  772.  
  773. Product Number:
  774. B3184A
  775.  
  776. Notes:
  777. A) The OpenODB Training Course is delivered in Cupertino, California and takes
  778.    4 days.
  779. B) OpenODB documentation includes the OpenODB Reference Manual, ALLBASE/SQL
  780.    Handbook of DBA Tasks, and Up and Running with ALLBASE/SQL.
  781. C) The OpenODB Training Course includes hands on experience with the OpenODB
  782.    software through a case study approach.
  783. D) No standard discounts apply.
  784.  
  785.  
  786. 5. OpenODB Consulting
  787.  
  788. Contents:
  789. A) 1 person on the customer's site for technical consulting
  790.  
  791. U.S. List Price:  $3,500/day + zone charge/trip
  792.  
  793. Product Number:
  794. B3186A
  795.  
  796. Notes:
  797. A) For details about this consulting, see the OpenODB Consulting Fact Sheet.
  798. B) The zone charges per trip are: $1000 in North America, $2000 in Europe,
  799.    and $3000 in the Far East and South America.
  800.  
  801.    Consulting that does not require travel will not have a zone charge.
  802. C) Special quotes are available for projects longer than one week.
  803. D) No standard discounts apply.
  804.  
  805.  
  806. 6. OpenODB Reference Manual
  807.  
  808. Contents:
  809. A) OpenODB Reference Manual
  810. B) The right to make up to 5 additional copies of the OpenODB Reference Manual
  811.    for internal use only.
  812.  
  813. U.S. List Price:  $250/manual & right to copy
  814.  
  815. Product Number:    B3185A
  816.  
  817. Notes:
  818. A) No standard discounts apply
  819.  
  820. Mark Boronkay
  821. OpenODB Consultant
  822. boronkay@cup.hp.com
  823.  
  824.  
  825.  
  826. > POET <Persistent Objects and Extended Database Technology>  (BKS Software)
  827.  
  828. C++ Language Support
  829.  
  830. o    tight semantic integration with C++
  831. o    any C++ object or structure can be made persistent by adding the 
  832.      persistent keyword
  833. o    storing and reading a C++ object does not change its state or behavior
  834. o    full support for C++ encapsulation, object identity,  inheritance, and 
  835.      polymorphy
  836. o    C++ pointers and references are automatically converted to database 
  837.      references when storing objects
  838. o    database references are automatically converted to C++ pointers and 
  839.      references when reading objects
  840. o    all database definition is done through a small extension to C++ 
  841.      declaration syntax
  842.  
  843. Database Functionality
  844. navigation, queries, sorting, indexes, single-user operation, multi-user
  845. operation using client/server architecture, flexible locking for objects
  846. and sets, nested transactions, watch & notify for objects and sets,
  847. event handling, database size limited only by hard disk size
  848.  
  849. C++ Language Extensions
  850. persistence, indexes, transient data elements in persistent classes, sets,
  851. dependent objects
  852.  
  853. PTXX-Precompiler
  854. automatically converts extended C++ class declarations into ANSI 2.0 code,
  855. registers classes in the class dictionary, provides class versioning
  856.  
  857. Predefined C++ Classes
  858. date, time, strings, and BLOBS (binary large objects)
  859.  
  860. Portability
  861. all platforms are source-code compatible, any POET database may be read by
  862. any computer full support for heterogeneous networks
  863.  
  864. Platforms
  865. Available for MS-DOS / MS-Windows (Borland C++, Microsoft), 
  866. OS/2 (Borland C++), Novell, Macintosh MPW, and various Unix 
  867. systems, including NeXT (NeXTStep) and Sun OS (Sun C++).
  868.  
  869. How to Contact Us:
  870. BKS has offices in Santa Clara, Hamburg, and Berlin.  Silicon 
  871. River, Limited, is responsible for POET in the United Kingdom.  
  872.  
  873. Santa Clara:    (North America, Australia, Asia)
  874.  
  875. BKS Software
  876. 4633 Old Ironsides Drive  Suite 110
  877. Santa Clara, CA 95054
  878. Phone:  408 / 748 - 3403
  879. Fax:    408 / 748 - 9060
  880.  
  881. Contact Person: jrobie@netmbx.netmbx.de (Jonathan Robie)
  882.  
  883.  
  884. > Statice (Symbolics)
  885.  
  886. From: fischerm@darmstadt.gmd.de (Markus Fischer)
  887. Newsgroups: comp.databases.object,comp.lang.lisp
  888. Subject: Statice now runs on Unix
  889. Date: 15 Jun 93 14:55:48 GMT
  890.  
  891. Hi there,
  892.  
  893. since I've never seen 'Symbolics' or 'Statice' in
  894. comp.database.object, this might be interesting:
  895.  
  896. A few days ago, Symbolics announced the availability of a beta-
  897. release of their ODBMS 'Statice' on Unix platforms. It is quite
  898. powerful and tightly integrated within Common Lisp.
  899. Currently, Symbolics and LUCID are supported.
  900. People (like me) used to Symbolics' Genera development environment 
  901. can continue to use Statice there (where it has been already
  902. successfully employed in 'real world' applications)
  903. and now also use it on Unix Workstations.  (Those are the cheaper
  904. boxes, I guess). Both kinds of platforms can be freely intermixed
  905. in a network.
  906.  
  907. Statice is based on standards of Lisp: CLOS and CLIM 
  908. (Common Lisp Object System, resp. Common Lisp Interface Manager)
  909.  
  910. Here's the address of Symbolics in Germany; they're mostly 
  911. responsible for Statice on Unix:
  912.  
  913. Symbolics Systemhaus GmbH
  914. Mergenthalerallee 77
  915. 6236 Eschborn (til June 31)
  916. 65760 Eschborn (from July 1)
  917. Tel. (49) 6196-47220, Fax (49) 6196-481116
  918.  
  919. Contact person is Dr. Thomas Neumann (TN@symbolics.de).
  920.  
  921. Also:
  922.  
  923. "Update Database Schema" brings an existing database into conformance
  924. with a modified schema.  Changes are classified as either compatible
  925. (lossless, i.e., completely information-preserving) or incompatible
  926. (i.e., potentially information-losing in the current implementation).
  927. Basically, any change is compatible except for the following:
  928.  
  929.     -- If an attribute's type changes, all such attributes extant
  930.     are re-initialized (nulled out).  Note that Statice permits
  931.     an attribute to be of type T, the universal type.  Such an
  932.     attribute can then take on any value without schema
  933.     modification or information loss.
  934.  
  935.     -- If a type's inheritance (list of parents) changes, the
  936.     type must be deleted and re-created, losing all extant
  937.     instances of that type. This is Statice's most serious
  938.     current limitation.  The simplest workaround is to employ a
  939.     database dumper/loader (either the one supplied by Symbolics
  940.     or a customized one) to save the information elements and
  941.     then reload them into the modified schema.
  942.  
  943. [Lawrence G Mayka <lgm@IExist.ATT.COM>]
  944.  
  945.  
  946. > UniSQL
  947.  
  948. UniSQL offers a state-of-the-art suite of integrated object-oriented database
  949. systems and application development products which can be used separately or
  950. together to support complex development projects which use object-oriented
  951. development techniques, integrate sophisticated multimedia data, and require
  952. true multidatabase access to relational and object-oriented databases. The
  953. UniSQL product suite includes:
  954.  
  955.         UniSQL/X Database Management System;
  956.         UniSQL/M Multidatabase System; and
  957.         UniSQL/4GE Application Development Environment
  958.         User interfaces include: C++, C, Object SQL, SmallTalk, and ODBC
  959.         Database interfaces include: Ingres, Oracle, Sybase, UniSQL/X, and EDA/SQL
  960.  
  961. UniSQL offers:
  962.  
  963. - A wide selection of user interfaces including C++, SmallTalk, C, Microsoft's
  964.   ODBC, both embedded (static and dynamic) and interactive Object SQL, and UniSQL
  965.   and 3rd-party development tools.
  966.  
  967. - Mission-critical database features such as a high-level query language
  968.   (SQL/X), cost-based query optimization, automatic transaction management,
  969.   automatic concurrency control, dynamic schema evolution, dynamic authorization,
  970.   physical disk structuring options, and installation tuning parameters.
  971.  
  972. - The UniSQL Multimedia Framework which provides natural and uniform database
  973.   system support for all types of large unstructured data objects. The Multimedia
  974.   Framework also provides for seamless integration of multimedia devices such as
  975.   fax machines, CD jukeboxes, satellite feeds, image compression boards, etc.
  976.  
  977. - The UniSQL/M Multidatabase System enables developers to manage a collection
  978.   of multi-vendor databases -- Ingres, Oracle, Sybase, DB2, UniSQL/X, and others
  979.   -- as a single federated database system with full object-oriented
  980.   capabilities.
  981.  
  982. UniSQL has well over 150 customers around the world, the majority of which are
  983. using UniSQL database products for mission-critical applications which require
  984. object-oriented, multimedia, post-relational, and heterogeneous database
  985. capabilities.
  986.  
  987. A typical UniSQL customer is a Fortune 500 company, a commercial software
  988. developer, or government organization that is using UniSQL database products
  989. to:
  990.  
  991. - support mission-critical application development projects which are being
  992.   developed using object-oriented programming languages and development
  993.   techniques,
  994.  
  995. - support applications which must integrate many different types of corporate
  996.   data -- text and documents, tabular data, images and audio, engineering
  997.   drawings, GIS data, procedural data (programs), etc. -- into a single
  998.   application context.
  999.  
  1000. - support the full object-oriented development paradigm using existing
  1001.   relational database systems such as Ingres, Oracle, Sybase, and DB2.
  1002.  
  1003. - logically integrate one or more relational and object-oriented databases to
  1004.   form a single, homogenized database server which supports both relational and
  1005.   object-oriented facilities.
  1006.  
  1007. In September 1992, UniSQL was selected by the Petrotechnical Open Software
  1008. Corporation (POSC) -- over more than 25 other industry vendors -- to provide
  1009. database technology which is being used by POSC in their development of a new
  1010. data management specification for the oil & gas industry. Also during 1992,
  1011. because of its powerful multimedia capabilities, UniSQL was selected by the MIT
  1012. AthenaMuse Consortium on multimedia as the consortium's multimedia database
  1013. system.
  1014.  
  1015. During the DB/EXPO '93 Conference and Exhibition, UniSQL was chosen in
  1016. competition with major industry database vendors as a finalist in the
  1017. ``RealWare Awards''.  The ``RealWare Awards'' honor companies that have
  1018. had a major impact in the user community.
  1019.  
  1020. UniSQL was founded in May 1990 by Dr. Won Kim, President and CEO, delivering
  1021. the UniSQL/X DBMS in March of 1992. With its world-class database research and
  1022. architectural team, UniSQL has perfected what the database industry has sought
  1023. since the mid-1980s: a fully object-oriented data model that is a natural
  1024. conceptual outgrowth of the popular relational model. Both the UniSQL/X DBMS
  1025. and the UniSQL/M Multidatabase System represent the first of a powerful new
  1026. generation of client-server database systems that support the full
  1027. object-oriented paradigm yet retain all of the strengths and capabilities of
  1028. relational database systems including support for ANSI-standard SQL.
  1029.  
  1030. UniSQL currently has 45 employees and is privately owned and managed by Dr.
  1031. Kim. The company has secured long-term funding from NTT Data Communications
  1032. Systems Corp. (NTT Data), a $2 billion company, which is Japan's foremost
  1033. systems integrator and UniSQL's exclusive distributor in Japan.
  1034.  
  1035. For more information, contact:
  1036.  
  1037.         UniSQL, Inc.
  1038.         9390 Research Blvd., II-200
  1039.         Austin, Texas 78759-6544
  1040.         Tel.: 512/343-7297
  1041.         Tollfree: 800/451-DBMS
  1042.         Fax.: 512/343-7383
  1043.  
  1044. And:
  1045. From: jonh@unisql.UUCP (Jon Higby)
  1046. Newsgroups: comp.databases,comp.databases.theory,comp.databases.object,comp.object
  1047. Subject: Re: SQL3, Itasca, & UniSQL/X
  1048. Message-ID: <6143@unisql.UUCP>
  1049. Date: 10 Sep 93 14:26:04 GMT
  1050. References: <CD1Ln5.9G3@dcs.glasgow.ac.uk>
  1051. Organization: UniSQL, Inc., Austin, Texas, USA
  1052.  
  1053. >>...
  1054. For UniSQL/X, feel free to contact me (email, snail-mail or phone).
  1055.  
  1056. UniSQL/X is a SQL compliant database with Object Oriented extensions
  1057. (classes, inheritance, methods, etc).  We have an information packet
  1058. available which includes a white-paper on our OORDMS approach.
  1059.  
  1060. Jon Higby
  1061. Technical Services Consultant
  1062.  
  1063. UniSQL, Inc.
  1064. 9390 Research II, Suite 200
  1065. Austin, Texas  78759-6544
  1066. (512) 343-7297
  1067.  
  1068. *****************************************************************************
  1069. Standard disclaimer ... All opinions expressed are my own and not of my 
  1070.                         employer.......................................
  1071. *****************************************************************************
  1072.  
  1073.  
  1074.  
  1075. > Versant (Versant Object Technology)
  1076.  
  1077. Versant is a client/server object database management system (ODBMS) targeted at
  1078. distributed, multi-user applications.  Versant runs on UNIX and PC platforms, 
  1079. including Sun, IBM, HP, DEC, SGI, Sequent, OS/2, with support for Windows NT is 
  1080. planned during 1993.
  1081.  
  1082. Versant provides transparent language interfaces from object-oriented 
  1083. programming languages such as C++ and Smalltalk.  Versant also supports a C API.
  1084.  
  1085. Versant is built with an object-level architecture, which means that operations 
  1086. are generally performed on the object (or group thereof) level.  Key Versant 
  1087. features include:
  1088.  
  1089.  Performance
  1090.  -----------
  1091.  
  1092. *  Object-level locking for fine granularity concurrency control
  1093. *  Server-based query processing to reduce network I/O
  1094. *  Dual caching to speed warm traversals
  1095. *  Dynamic space reclamation and reuse
  1096.  
  1097.  Distribution
  1098.  ------------
  1099.  
  1100. *  Immutable, logical object identifiers for data integrity
  1101. *  Object migration (transparent relocation across nodes)
  1102. *  Transparent cross-node references (distributed db)
  1103. *  Automatic two-phase commit
  1104.  
  1105.  Other
  1106.  -----
  1107.  
  1108. *  Schema evolution (online via lazy updates)
  1109. *  Standard workgroup features (e.g., versioning, checkin/out)
  1110. *  Detachable, personal databases
  1111. *  DBA utilities
  1112.  
  1113.  
  1114. Additional information available from
  1115.  
  1116. info@versant.com  (General information)
  1117. davek@versant.com (Dave Kellogg)
  1118.  
  1119. Versant Object Technology 
  1120. 1380 Willow Road
  1121. Menlo Park, California  94025
  1122.  
  1123. 415-329-7500 phone.
  1124. 415-325-2380 fax.
  1125.  
  1126.  
  1127. On Schema Evolution (from original survey):
  1128. We support run-time schema evolution.  It uses a lazy scheme, so
  1129. schema operations are very fast.  Objects on disk may have an older
  1130. `storage class' and they will be updated to the new schema when they
  1131. are used.
  1132.  
  1133. In older releases schema evolution was allowed only on leaf classes
  1134. (those with no subclasses).  In our new release 2 (going to beta test
  1135. soon) you can do schema evolution on any class.
  1136.  
  1137. In the future we're working on more general view mechanisms so you can
  1138. see a subset of the attributes in memory, or some more complicated
  1139. transformation.  This goes together with support for multiple
  1140. compilers and multiple languages.
  1141.  
  1142. [Joe Keane <osc!jgk@amd.com>]
  1143.  
  1144. Also: 1-800-Versant
  1145.  
  1146.  
  1147.  
  1148.  
  1149. Other Models
  1150. ------------
  1151.  
  1152. Research Systems
  1153. ________________
  1154.  
  1155. > GRAS
  1156.  
  1157. --------------------------------------------------------------
  1158. GRAS - A Graph-Oriented Database System for SE Applications
  1159. Copyright (C) 1987-1993  Lehrstuhl Informatik III, RWTH Aachen
  1160. --------------------------------------------------------------
  1161.  
  1162. See the GNU Library General Public License for copyright details.
  1163.  
  1164. Contact Adresses:
  1165.  
  1166.     Dr. Andy Schuerr 
  1167.     Lehrstuhl fuer Informatik III,
  1168.     University of Technology Aachen (RWTH Aachen),
  1169.     Ahornstr. 55,
  1170.     D-5100 Aachen
  1171.  
  1172. Email to
  1173.  
  1174.     andy@i3.informatik.rwth-aachen.de
  1175.  
  1176. GRAS is a database system which has been designed according
  1177. to the requirements resulting from software engineering
  1178. applications. Software development environments are composed
  1179. of tools which operate on complex, highly structured data.
  1180. In order to model such data in a natural way, we have selected
  1181. attributed graphs as GRAS' underlying data model.
  1182.  
  1183. A first prototype of the GRAS (GRAph Storage) system - described
  1184. in /BL 85/ - was already realized in 1985. Since this time
  1185. gradually improving versions of the system have been used at
  1186. different sites within the software engineering projects
  1187. IPSEN /Na 90/, Rigi /MK 88/, MERLIN /DG 90/, and CADDY /EHH 89/.
  1188. Based on these experiences, almost all parts of the original
  1189. prototype have been redesigned and reimplemented.
  1190.  
  1191. Thus, nowadays a stable and efficiently working single-process
  1192. version of the system GRAS with interfaces for the programming
  1193. languages Modula-2 and C is available as free software for Sun
  1194. workstations (the GRAS system itself is implemented in Modula-2
  1195. and consists of many layers which might be reusable for the
  1196. implementation of other systems):
  1197.  
  1198.   Via anonymous ftp from ftp.informatik.rwth-aachen.de
  1199.   in directory /pub/unix/GRAS in file gras.<version-no>.tar.Z.
  1200.  
  1201.   There are several files containing documentation, sources, binaries,
  1202.   application examples, and libraries. All binaries are for Sun/4
  1203.   machines. Sun/3 binaries are shipped only if explicitly requested.
  1204.  
  1205.   You have to use the following sequence of operations for installing
  1206.   the GRAS system at your site:
  1207.  
  1208.   1) 'ftp ftp.informatik.rwth-aachen.de' (with login name "anonymous"
  1209.      and password equal to your mail address).
  1210.   2) 'cd pub/unix/GRAS' (for changing the current directory).
  1211.   3) 'binary' (command for changing ftp mode).
  1212.   4) 'get gras.<version-no.>' (use 'ls' for finding the currently used
  1213.       GRAS version nr.).
  1214.   5) 'bye' (for exiting ftp).
  1215.   6) 'uncompress gras.<version-no>.tar'.
  1216.   7) 'tar xvf gras.<version-no>.tar' (creates a subdirectory GRAS_2 for
  1217.      the Modula-2 implementation of GRAS including its C-interface).
  1218.   8) Follow the instructions in file GRAS_2/README.
  1219.  
  1220.  
  1221. The current version has programming interfaces for Modula-2 and C
  1222. and supports:
  1223.  
  1224.   - the manipulation of persistent attributed, directed node- and
  1225.     edge-labeled graphs (including the creation of very long
  1226.     attributes and of attribute indexes).
  1227.  
  1228.   - the manipulation of temporary/volatile generic sets/relations/lists,
  1229.  
  1230.   - the coordination of graph accesses by different GRAS applications
  1231.     (multiple-read/single-write access with graphs as lock units),
  1232.  
  1233.   - error recovery based on shadow pages and forward logs,
  1234.  
  1235.   - nested transactions and linear undo/redo of arbitrarily long
  1236.     sequences of already committed graph modifying operations based
  1237.     on forward and backward logs,
  1238.  
  1239.   - event-handling (with certain kinds of graph-modifications
  1240.     as events and graph-modifying transactions as event-handlers),
  1241.  
  1242.   - primitives for version control comprising the capability
  1243.     for efficiently storing graphs as forward/backward deltas to
  1244.     other graphs,
  1245.  
  1246.   - and primitives for declaring graph schemes and for incremental
  1247.     evaluation of derived attributes.
  1248.  
  1249. Furthermore, tools for (un-)compressing graphs and a X11R5-based
  1250. graph browser are part of this release.
  1251.  
  1252. A multi-process version of the system GRAS supporting the inter-
  1253. action of multiple client and multiple server processes within
  1254. one local area network is nearby completion (version 6.0/0).
  1255.  
  1256. Thus, the GRAS system may be considered to be the core of a graph
  1257. oriented DBMS environment. The development of such an environment
  1258. based on a very high-level specifications language named PROGRES
  1259. is under way (the underlying calculus of this specifcation language
  1260. are so-called PROgrammed GRaph REwriting Systems).
  1261.  
  1262. This environment will comprise the following tools (a prerelease
  1263. of this environment might be made available upon request):
  1264.  
  1265.   - a syntax-directed editor for graph schemes, graph rewrite rules,
  1266.     and sequences of graph rewrite rules,
  1267.  
  1268.   - an incrementally working consistency checker,
  1269.  
  1270.   - an incrementally working compiler&interpreter translating
  1271.     PROGRES specifications into sequences of GRAS procedure
  1272.     calls (for C as well as for Modula-2),
  1273.  
  1274.   - and an "enhanced" graph (scheme) browser.
  1275.  
  1276.  
  1277. References
  1278. ----------
  1279.  
  1280. Refer to the following publications for further info about GRAS, PROGRES,
  1281. and related topics:
  1282.  
  1283. /BL85/          Brandes, Lewerentz: A Non-Standard Data Base System within
  1284.                 a Software Development Environment. In Proc. of the Workshop
  1285.                 on Software Engineering Environments for Programming-in-the-
  1286.                 Large, pp 113-121, Cape Cod, June 1985
  1287.  
  1288. /DHKPRS90/      Dewal, Hormann, Kelter, Platz, Roschewski, Schoepe: Evaluation
  1289.                 of Object Management Systems. Memorandum 44, University
  1290.                 Dortmund, March 1990
  1291.  
  1292. /Feye92/    Feye A.: Compilation of Path Expressions (in German), Diploma
  1293.         Thesis, RWTH Aachen (1992)
  1294.  
  1295. /Hoefer92/    Hoefer F.: Incremental Attribute Evaluation for Graphs (in
  1296.         German), Diploma Thesis, RWTH Aachen (1992)
  1297.  
  1298. /HPRS90/        Hormann, Platz, Roschweski, Schoepe: The Hypermodel Benchmark,
  1299.                 Description, Execution and Results. Memorandum 53, University
  1300.                 Dortmund, September 1990
  1301.  
  1302. /KSW92/ *       Kiesel, Schuerr, Westfechtel: GRAS, A Graph-Oriented Database
  1303.                 System for (Software) Engineering Applications. Proc. CASE 93,
  1304.         Lee, Reid, Jarzabek (eds.): Proc. CASE '93, 6th Int. Conf. on
  1305.         Computer-Aided Software Engineering, IEEE Computer Society
  1306.         Press (1993), pp 272-286
  1307.         Also:  Technical Report AIB 92-44, 
  1308.  
  1309. /Klein92/    Klein P.: The PROGRES Graph Code Machine (in German), Diploma
  1310.         Thesis, RWTH Aachen (1992)
  1311.  
  1312. /Kossing92/    Kossing P.: Modelling of Abstract Syntax Graphs for normalized
  1313.         EBNFs (in German), Diploma Thesis, RWTH Aachen (1992)
  1314.  
  1315. /LS88/          Lewerentz, Schuerr: GRAS, a Management System for Graph-
  1316.                 Like Documents. In Proceedings of the Third International
  1317.                 Conference on Data and Knowledge Bases, Morgan Kaufmann
  1318.                 Publ. Inc. (1988), pp 19-31
  1319.  
  1320. /Nagl89/        Nagl (ed.): Proc. WG'89 Workshop on Graphtheoretic Concepts
  1321.                 in Computer Science, LNCS 411, Springer-Verlag (1989)
  1322.  
  1323. /NS91/          Nagl, Schuerr: A Specification Environment for Graph Grammars,
  1324.                 in Proc. 4th Int. Workshop on Graph-Grammars and Their
  1325.                 Application to Computer Science, LNCS 532, Springer-
  1326.                 Verlag 1991, pp 599-609
  1327.  
  1328. /Schuerr89/     Schuerr: Introduction to PROGRES, an Attribute Graph Grammar
  1329.                 Based Specification Language, in: /Nagl89/, pp 151-165
  1330.  
  1331. /Schuerr91a/ *  Schuerr: PROGRES: A VHL-Language Based on Graph Grammars,
  1332.                 in Proc. 4th Int. Workshop on Graph-Grammars and Their
  1333.                 Application to Computer Science, LNCS 532, Springer-
  1334.                 Verlag 1991, pp 641-659
  1335.         Also:  Technical Report AIB 90-16
  1336.  
  1337. /Schuerr91b/    Schuerr: Operational Specifications with Programmed Graph
  1338.         Rewriting Systems: Theory, Tools, and Applications, 
  1339.         Dissertation, Deutscher Universitaetsverlag (1991) (in German)
  1340.  
  1341. /SZ91/ *        Schuerr, Zuendorf: Nondeterministic Control Structures for
  1342.                 Graph Rewriting Systems, in Proc. WG'91 Workshop in Graph-
  1343.                 theoretic Concepts in Computer Science, LNCS 570, Springer-
  1344.                 Verlag 1992, pp 48-62
  1345.         Also: Technical Report AIB 91-17
  1346.  
  1347. /Westfe89/      Westfechtel: Extension of a Graph Storage for Software
  1348.                 Documents with Primitives for Undo/Redo and Revision Control.
  1349.                 Technical Report AIB Nr. 89-8, Aachen University of Technology,
  1350.                 1989
  1351.  
  1352. /Westfe91/      Westfechtel: Revisionskontrolle in einer integrierten Soft-
  1353.                 wareentwicklungsumgebung, Dissertation, RWTH Aachen, 1991
  1354.  
  1355. /Zuendorf89/    Zuendorf: Kontrollstrukturen fuer die Spezifikationssprache
  1356.                 PROGRES, Diplomarbeit, RWTH Aachen, 1989
  1357.  
  1358. /Zuendorf92/ *  Zuendorf A.: Implementation of the Imperative/Rule Based
  1359.                 Language PROGRES, Technical Report AIB 92-38, RWTH Aachen,
  1360.                 Germany (1992)
  1361.  
  1362. /Zuendorf93/ *  Zuendorf A.: A Heuristic Solution for the (Sub-) Graph
  1363.                 Isomorphism Problem in Executing PROGRES, Technical
  1364.                 Report AIB 93-5, RWTH Aachen, Germany (1993)
  1365.  
  1366. * : All reports marked with an asterisk are available via anonymous ftp from
  1367.     ftp.informatik.rwth-aachen.de in directory /pub/reports/... .
  1368.  
  1369. See also PROGRES documentation.
  1370.  
  1371. [See also APPENDIX E]
  1372.  
  1373.  
  1374. > IRIS (HP Labs)
  1375.  
  1376. [Iris is a system out of HP Labs that began as a prototype and eventually
  1377. became a commercial product.  I believe it was eventually incorporated into
  1378. the new HP product, OpenODB. - clamen]
  1379.  
  1380. Long and short system summaries can be found in:
  1381.  
  1382. [FISH89] D.H. Fishman et. al. Overview of the Iris DBMS. In Won.
  1383.          Kim and Frederick H. Lochovsky, editors,
  1384.          Object-Oriented Concepts, Databases and Applications,
  1385.          chapter 10, pages 219--250. Addison-Wesley, Reading,
  1386.          MA, 1989.
  1387.  
  1388. [FBC+87] D.H. Fishman, D. Beech, H.P. Cate, E.C. Chow,
  1389.          T. Connors, J.W. Davis, N. Derrett, C.G. Hock, W. Kent,
  1390.          P. Lyngbaek, B. Mahbod, M.A. Neimat, T.A. Tyan, and
  1391.          M.C. Shan. Iris:  An object-oriented database
  1392.          management system. ACM Transactions on Office
  1393.          Information Systems, 5(1):48--69, January 1987.
  1394.  
  1395. The abstract of the latter (written early in the project) follows:
  1396.  
  1397.    The Iris database management system is a research prototype of
  1398.    a next-generation database management system intended  to meet
  1399.    the needs of new and emerging database applications, including
  1400.    office    automation and knowledge-based systems,  engineering
  1401.    test and measurement, and hardware  and software design.  Iris
  1402.    is exploring a rich set of  new database capabilities required
  1403.    by    these   applications,   including  rich    data-modeling
  1404.    constructs, direct  database support for inference,  novel and
  1405.    extensible data types, for example to  support graphic images,
  1406.    voice,    text,   vectors,  and  matrices,    support for long
  1407.    transactions   spanning  minutes  to  many  days, and multiple
  1408.    versions of data.  These capabilities are, in addition  to the
  1409.    usual support for  permanence   of data, controlled   sharing,
  1410.    backup and recovery.
  1411.  
  1412.    The   Iris   DBMS consists   of  (1) a  query   processor that
  1413.    implements  the   Iris object-oriented  data    model, (2)   a
  1414.    Relational Storage Subsystem (RSS) -like  storage manager that
  1415.    provides  access paths and  concurrency  control, backup   and
  1416.    recovery, and (3) a collection of programmatic and interactive
  1417.    interfaces.  The data   model supports  high-level  structural
  1418.    abstractions,  such  as  classification, generalization,   and
  1419.    aggregation, as  well  as behavioral    abstractions.      The
  1420.    interfaces to  Iris  include an  object-oriented extension  to
  1421.    SQL.
  1422.  
  1423.  
  1424. On Schema Evolution (from original survey):
  1425. Objects in the Iris system may acquire or lose types dynamically.
  1426. Thus, if an object no longer matches a changed definition, the user
  1427. can choose to remove the type from the object instead of modifying the
  1428. object to match the type.  In general, Iris tends to restrict class
  1429. modifications so that object modifications are not necessary.  For
  1430. example, a class cannot be removed unless it has no instances and new
  1431. supertype-subtype relationships cannot be established.
  1432.